//
//  ThreadC.h
//  ThreadPool
//
//  Created by mac on 2022/7/14.
//
#ifndef THREAD_C_H
#define THREAD_C_H

typedef struct ThreadPool ThreadPool;
// 创建线程池并初始化
ThreadPool* threadPoolCreate(int min, int max, int queueSize);

// 销毁线程池
int threadPoolDestroy(ThreadPool* pool);

// 给线程池添加任务
void threadPoolAdd(ThreadPool* pool, void(*func)(void*), void* arg);

// 获取线程池里工作的线程个数
int threadPoolBusyName(ThreadPool* pool);
// 获取线程池里活着的的线程个数
int threadPoolLivaName(ThreadPool* pool);

// 工作的线程
void worker(void* arg);

// 管理者线程
void manager(void* arg);

// 线程退出
void threadExit(ThreadPool* pool);

void ThreadC_Test();

#endif
